#include <stdio.h>

#include "hard_disk.h"
#include "hard_disk_factory.h"
#include "stddef.h"

int main()
{
    struct HardDisk *hardDisk = NULL;
    struct HardDiskFactory hardDiskFactory;
    HardDiskFactory(&hardDiskFactory);

    // 创建 seagate 硬盘对象
    hardDisk = hardDiskFactory.Create(&hardDiskFactory,
                                      HARD_DISK_SUPPLIER_SEAGATE);
    // 使用 seagate 硬盘对象
    hardDisk->Operation(hardDisk);
    // 销毁 seagate 硬盘对象
    hardDiskFactory.Destroy(&hardDiskFactory, hardDisk);

    // 创建 toshiba 硬盘对象
    hardDisk = hardDiskFactory.Create(&hardDiskFactory,
                                      HARD_DISK_SUPPLIER_TOSHIBA);
    // 使用 toshiba 硬盘对象
    hardDisk->Operation(hardDisk);
    // 销毁 toshiba 硬盘对象
    hardDiskFactory.Destroy(&hardDiskFactory, hardDisk);

    _HardDiskFactory(&hardDiskFactory);
    return 0;
}
